Stored Procedures [dbo].[BAECustomerFindRecord]
Properties
PropertyValue
ANSI Nulls OnYes
Quoted Identifier OnYes
Parameters
NameData TypeMax Length (Bytes)
@idvarchar(10)10
@firstNamevarchar(20)20
@lastNamevarchar(30)30
@zipvarchar(10)10
@emailvarchar(100)100
SQL Script
create procedure [dbo].[BAECustomerFindRecord] @id varchar(10),
     @firstName varchar(20),
     @lastName varchar(30),
     @zip varchar(10),
     @email varchar(100) as
IF @email <> ''  --Find user by email
    BEGIN
        SELECT DISTINCT ID
        FROM Name n
        WHERE n.EMAIL = @email
        UNION
        SELECT DISTINCT n.ID
        FROM Name n
        INNER JOIN Name_Address na ON na.ID = n.ID
        WHERE UPPER(na.EMAIL) = UPPER(@email);
    END
    ELSE IF (@id <> '' AND @lastName <> '')  --Find user by id AND last name
    BEGIN
        SELECT DISTINCT ID
        FROM Name n
        WHERE n.ID = @id AND UPPER(n.LAST_NAME) = UPPER(@lastName);
    END
    ELSE IF (@zip <> '' AND @firstName <> '' AND @lastName <> '') --Find user by zip, last, first name
    BEGIN
        SELECT DISTINCT ID
        FROM Name n
        WHERE UPPER(n.ZIP) like UPPER(@zip) + '%' AND UPPER(n.LAST_NAME) = UPPER(@lastName) AND (UPPER(n.INFORMAL) = UPPER(@firstName) OR UPPER(n.FIRST_NAME) = UPPER(@firstName) OR UPPER(n.MIDDLE_NAME) = UPPER(@firstName))
        UNION
        SELECT DISTINCT n.ID
        FROM Name n
        INNER JOIN Name_Address na ON na.ID = n.ID
        WHERE UPPER(na.ZIP) like UPPER(@zip) + '%' AND UPPER(n.LAST_NAME) = UPPER(@lastName) AND (UPPER(n.INFORMAL) = UPPER(@firstName) OR UPPER(n.FIRST_NAME) = UPPER(@firstName) OR UPPER(n.MIDDLE_NAME) = UPPER(@firstName))
    END

GO
Uses